import productSearchApi from '@/lib/product/api/productSearchApi'; import { create } from 'xmlbuilder'; import _ from 'lodash-contrib'; import { createSlug } from '@/core/utils/slug'; export async function getServerSideProps({ query, res }) { const baseUrl = process.env.SELF_HOST + '/shop/product/'; const { page } = query; const limit = 2500; const queries = { limit, page: page.replace('.xml', ''), '-publish_b': false, product_rating_f: '[8 TO *]', price_tier1_v2_f: '[1 TO *]', }; const products = await productSearchApi({ query: _.toQuery(queries) }); const sitemap = create('urlset', { encoding: 'utf-8' }).att( 'xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9' ); // const date = new Date() const date = '2025-10-29'; products.response.products.forEach((product) => { const url = sitemap.ele('url'); url.ele('loc', createSlug(baseUrl, product.name, product.id)); url.ele('lastmod', date.toISOString().slice(0, 10)); url.ele('changefreq', 'daily'); url.ele('priority', '0.8'); }); res.setHeader('Content-Type', 'text/xml'); res.write(sitemap.end()); res.end(); return { props: {} }; } export default function SitemapProducts() { return null; }